﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using GigaSite.Domain.Interfaces.Repositories;
using GigaSite.Domain.IoC;
using GigaSite.Web.Areas.ControlPanel.Models;

namespace GigaSite.Web.Controllers
{
    public class HomeController : BaseController
    {
        /// <summary>
        /// Отображает главную страницу сайта
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            // Репозиторий
            var repository = Locator.GetService<IHomePageRepository>();

            // Подготавливаемся к отображению информации на главной странице
            // Баннеры
            var banners =
                repository.GetHomePageBanners().Where(b => !b.Hidden).OrderByDescending(b => b.Sequence).Select(b => new HomePageBanner(b)).AsEnumerable();
            ViewBag.banners = banners;
            return View();
        }

        /// <summary>
        /// Отображает страницу О Сайте
        /// </summary>
        /// <returns></returns>
        public ActionResult About()
        {
            return View();
        }

        /// <summary>
        /// Отображает страницу с правилами пользования сайтом
        /// </summary>
        /// <returns></returns>
        public ActionResult Rules()
        {
            return View();
        }

        /// <summary>
        /// Отображает карту сайта
        /// </summary>
        /// <returns></returns>
        public ActionResult Map()
        {
            return View();
        }

        /// <summary>
        /// Отображает страницу контактов
        /// </summary>
        /// <returns></returns>
        public ActionResult Contacts()
        {
            return View();
        }

        /// <summary>
        /// Отображает страницу с рекламной информацией
        /// </summary>
        /// <returns></returns>
        public ActionResult Adv()
        {
            return View();
        }

        /// <summary>
        /// Отображает страницу с просьбой зарегистрироваться
        /// </summary>
        /// <returns></returns>
        public ActionResult RegistrationRequired()
        {
            if (CurrentUser != null)
            {
                return RedirectToAction("Index");
            }
            return View();
        }
    }
}
